
#if	!defined( __20080806_DEF_PCE_CFG_H__ )
#define	__20080806_DEF_PCE_CFG_H__

//	PCE_CFG_Compiler_xxx
//	PCE_CFG_OS_xxx
//	PCE_CFG_MWL_xxBits
//	PCE_CFG_DEBUG

//	On windows platform, must define PCE_CFG_Compiler_VC8.
//		Other macro will be defined automatically( according
//		to WIN32 or WIN64, and _DEBUG).
//	On linux platform, must define PCE_CFG_Compiler_GCC,
//		PCE_CFG_MWL_xxBits and PCE_CFG_DEBUG. PCE_CFG_OS_Linux
//		will be defined automatically.

#if	defined( PCE_CFG_Compiler_VC8 )

	// define PCE_CFG_OS_xx for VC8 automatically
	#define	PCE_CFG_OS_Windows
	#undef	PCE_CFG_OS_Linux

	// define PCE_CFG_MWL_xxBits for VC8 automatically
	#if	defined( WIN32 )
		#if	defined( WIN64 )
			#error VC8 defines both WIN32 and WIN64
		#endif
		#define	PCE_CFG_MWL_32Bits
		#undef	PCE_CFG_MWL_64Bits
	#elif	defined( WIN64 )
		#if	defined( WIN32 )
			#error VC8 defines both WIN32 and WIN64
		#endif
		#undef	PCE_CFG_MWL_32Bits
		#define	PCE_CFG_MWL_64Bits
	#else
		#error VC8 do not define macro WIN32 or WIN64!
	#endif

	// define PCE_CFG_DEBUG for VC8 automatically
	#if	defined( _DEBUG )
		#define	PCE_CFG_DEBUG
	#else
		#undef	PCE_CFG_DEBUG
	#endif

#elif	defined( PCE_CFG_Compiler_GCC )

	// define PCE_CFG_OS_xx for GCC automatically
	#undef	PCE_CFG_OS_Windows
	#define	PCE_CFG_OS_Linux

#else
	#error Do not define compiler
#endif

#endif	// __20080806_DEF_PCE_CFG_H__
